ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã®æŠå¿µã§ããåå®å šæ§ããçŸä»£ã®ããžã¿ã«ã¢ãŒãããŒã«ã«ãããŠãä¿¡é Œæ§ãäºæž¬å¯èœæ§ããããŠåµé çãªãããŒã«ãšã£ãŠãªãéèŠãªã®ããæ¢ããŸãã
ãžã§ããªãã¯ã¢ãŒããã¯ãããžãŒïŒã¯ãªãšã€ãã£ãããŒã«ã«ãããåå®å šæ§ã®éèŠæ§
ããžã¿ã«åµäœã®äžçã«ãããŠãç§ãã¡ã¯ççŸã®äžã«ååšããŸããç§ãã¡ã¯ãèªç±å¥æŸã§ãå¶ç¶ã®çºèŠãèŒããããããããŒã¢ã¯ã·ãã³ãããå¯èœã«ããããŒã«ãæ±ããŠããŸãããããåæã«ãå®å®æ§ãäºæž¬å¯èœæ§ããããŠä¿¡é Œæ§ã®ããããŒã«ãæ±ããŠããŸããã«ãŒã«ãæ²ãããäžæ¹ã§ããœãããŠã§ã¢ãå£ããããšã¯æãã§ããŸããããã®ç¹çްãªãã©ã³ã¹ãããã广çãªã¯ãªãšã€ãã£ããã¯ãããžãŒã®èŠã§ããããŒã«ããããŒã®éäžã§ã¯ã©ãã·ã¥ãããããããžã§ã¯ããã¡ã€ã«ãç Žæãããããã©ã¡ãŒã¿ãäºæãã¬åäœãããããããšãåµé ã®éæ³ã¯æã¡ç ãããå·ãããããã°ã®èŠçã«åã£ãŠä»£ããããŸãã
ããã§ããã¯ãªãšã€ãã£ãããŒã«ã«ãããåå®å šæ§ããšããæŠå¿µãç»å ŽããŸãããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã®äžçããåçšãããåå®å šæ§ããšã¯ãããŒã¿ãæå³ãããçš®é¡ãã€ãŸããåãã«åŸã£ãŠäœ¿çšãããããã«ããããšã§ãšã©ãŒãé²ãååã§ããäŸãã°ãæç¢ºãªæå³ããªãéããåèªãæ°å€ã«æ°åŠçã«å ç®ããããšã¯ã§ããŸãããããã¯å¶çŽã®ããã«èããããããããŸããããå®éã«ã¯ãå ç¢ã§äºæž¬å¯èœãªã·ã¹ãã ãæ§ç¯ããããã®åŒ·åãªã¡ã«ããºã ãªã®ã§ãããã®èšäºã§ã¯ããã®ååããProcessingãp5.jsã®ãããªã¯ãªãšã€ãã£ãã³ãŒãã£ã³ã°ã©ã€ãã©ãªãããHoudiniãTouchDesignerã®ãããªè€éãªããŒãããŒã¹ã®ç°å¢ãŸã§ãããžã¿ã«ã¢ãŒããäœæããããã«äœ¿çšãããœãããŠã§ã¢ããã¬ãŒã ã¯ãŒã¯ãã·ã¹ãã ã®åºå€§ãªãšã³ã·ã¹ãã ãå å«ããåºçŸ©ã®çšèªã§ããããžã§ããªãã¯ã¢ãŒããã¯ãããžãŒã®æŽ»æ°ã«æºã¡ããã°ãã°æ··æ²ãšããé åã«ç¿»èš³ããŸãã
ã¯ãªãšã€ãã£ããªåå®å šæ§ã¯ãåã«ã¯ã©ãã·ã¥ãé²ãã ãã§ã¯ãããŸãããããã¯ãã¢ãŒãã£ã¹ããšããŒã«ãšã®éã«ä¿¡é Œã®åºç€ãç¯ãããšã§ããã¢ãŒãã£ã¹ããèªä¿¡ãæã£ãŠå®éšã§ããã¯ãŒã¯ãããŒãèšèšããã·ã¹ãã ã圌ãã®äœåãä¿è·ãããã³ã»ã³ã¹ãªæäœããé ãããããã®å®å šè£ 眮ãåããŠããããšãç¥ãããšã§ããããã¯ãåµé çãªããã»ã¹ããµããŒãããç®ã«èŠããªãã¢ãŒããã¯ãã£ã§ãããã¢ãŒãã£ã¹ãããœãããŠã§ã¢ã®äžå®å®ãã§ã¯ãªãã圌ãã®ããžã§ã³ã«éäžããããšãå¯èœã«ããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ããã®æŠå¿µã®é倧ãªåœ±é¿ãæ¢ãããããç§ãã¡ãæ¥ã 䜿çšããããŒã«ã§ã©ã®ããã«çŸããããåæããæ¬¡äžä»£ã®ã¯ãªãšã€ãã£ããœãããŠã§ã¢ãæ§ç¯ããéçºè ãšãããå埩åããããçç£çãªå®è·µãè²æããããšããã¢ãŒãã£ã¹ãã®äž¡æ¹ã«ãå®è¡å¯èœãªæŠç¥ãæäŸããŸãã
åµé çãªãããŒã«ãããäºæž¬äžå¯èœæ§ã®é«ãã³ã¹ã
ãã¹ãŠã®ã¢ãŒãã£ã¹ãããã¶ã€ããŒããããŠã¯ãªãšã€ãã£ããã¯ãããžã¹ãã¯ãã®æèŠãç¥ã£ãŠããŸããããªãã¯ããããŒãã®ç¶æ ã«æ·±ãå ¥ã蟌ãã§ããŸããããã¯ãã¢ã€ãã¢ã楜ã ãšåœ¢ã«å€æããããæŽ»æ°ã«æºã¡ãéäžã®éæ³ã®ãããªç¶æ ã§ããæ°æéãæ°åã®ããã«æããããŸããããªããšããªãã®åµé ç©ãšã®å¢çç·ã¯æ¶ãå»ããŸããããªãã®ããŒã«ã¯ãã¯ããœãããŠã§ã¢ã®äžéšã§ã¯ãããŸãããããã¯ããªãã®å¿ã®å»¶é·ã§ãããããŠããããèµ·ãããŸããçªç¶ã®ããªãŒãºãäžå¯è§£ãªãšã©ãŒã¡ãã»ãŒãžããã¹ã¯ããããžã®ã¯ã©ãã·ã¥ããããŒã¯äžæãããã ãã§ãªããæ¶æ» ããŸãã
ããããäºæž¬äžå¯èœæ§ã®é«ãã³ã¹ãã§ããããã¯ã倱ãããæéãä¿åãããŠããªãäœæ¥ã ãã§ãªããåµé çãªå¢ããšãããã¯ããã«è²Žéãªéè²šã§æž¬å®ãããã³ã¹ãã§ããããŒã«ãä¿¡é Œã§ããªãå Žåãããã¯èªç¥çãªæ©æŠã®å±€ãå°å ¥ããŸããã¢ãŒãã£ã¹ãã®è³ã®äžéšã¯åžžã«èŠæããæ¬¡ã®ã°ãªãããäºæž¬ãã匷迫çã«ä¿åãããããŠæãæãå®éšã«ã¢ãããŒãããªããã°ãªããŸããããã®é²åŸ¡çãªèãæ¹ã¯ãçã®ã€ãããŒã·ã§ã³ã«å¿ èŠãªããªãŒãã³ã§æ¢æ±çãªç²Ÿç¥ãšã¯æ£å察ã§ãã
ããžã¿ã«ãªæŠå Žããã®äŸ
ããã¯æœè±¡çãªåé¡ã§ã¯ãããŸãããããã¯äžçäžã®ã¯ãªãšã€ã¿ãŒã«ãšã£ãŠãå ·äœçã§ãäžæºã®æ®ã圢ã§çŸããŸãïŒ
- ãžã§ãã¬ãŒãã£ãã¢ãŒãã£ã¹ãã®æªå€¢ïŒãã«ãªã³ã®ã¢ãŒãã£ã¹ãã¯ãã«ã¹ã¿ã C++ãã¬ãŒã ã¯ãŒã¯ã§è€éãªãžã§ãã¬ãŒãã£ãã¢ã«ãŽãªãºã ãäœæããŠããŸããå®ç§ãªç§©åºãšæ··æ²ã®ãã©ã³ã¹ãå®çŸããããã«æ°æéãã©ã¡ãŒã¿ã調æŽããåŸã誀ã£ãŠæµ®åå°æ°ç¹æ°ãæåŸ ãããã£ãŒã«ãã«æååãautoããå ¥åããŠããŸããŸããé©åãªå ¥åæ€èšŒããªããããããã°ã©ã ã¯åœŒãã«èŠåããŸããã代ããã«ãã¬ã³ããªã³ã°ã«ãŒãã®å¥¥æ·±ãã§ãã¢ããªã±ãŒã·ã§ã³ã¯ãã®ç¡å¹ãªããŒã¿ã«å¯ŸããŠæ°åŠçãªæäœã詊ã¿ãã»ã°ã¡ã³ããŒã·ã§ã³éåãåŒãèµ·ãããŸããã¢ããªã±ãŒã·ã§ã³ã¯å³åº§ã«éããä¿åãããŠããªããåçŸäžå¯èœãªæåŸã®2æéã®çºèŠã奪ããŸãã
- ã©ã€ãããã©ãŒããŒã®ã°ãªããïŒæ±äº¬ã®VJã¯ã人æ°ã®ããããŒãããŒã¹ã®ç°å¢ã䜿çšããŠãã©ã€ããªãŒãã£ãªããžã¥ã¢ã«ã»ãããããã©ãŒãã³ã¹ããŠããŸãã圌ãã®ã·ã¹ãã ã¯ããªã¢ã«ã¿ã€ã ã§é³æ¥œã«åå¿ããããã«èšèšãããŠããŸããããããDJã®ãããµãŒããã®æ°ãããªãŒãã£ãªä¿¡å·ã¯ãVJã®ããžã¥ã¢ã©ã€ã¶ãŒã¢ãžã¥ãŒã«ãæåŸ ãããã®ãšã¯ãããã«ç°ãªãããŒã¿æ§é ãæã£ãŠããŸããã·ã¹ãã ã¯æ£åžžã«ãã§ã€ã«ãªãŒããŒããŸããã代ããã«ãåäžã®ããžã¥ã¢ã©ã€ã¶ãŒã³ã³ããŒãã³ããããªãŒãºããã©ã€ããªãŒãã£ãšã³ã¹ã®åã§å šäœã®ããžã¥ã¢ã«åºåãéåãéåãã«åæ¢ããã«ã¹ã±ãŒãé害ãåŒãèµ·ãããŸããããŒã«ãžã®ä¿¡é Œã¯ãæãéèŠãªç¬éã«å£ããŸãã
- 3Dã¢ãã©ãŒã®ããã·ãŒãžã£ã«ããºã«ïŒãµã³ããŠãã®ãã¯ãã«ã«ã¢ãŒãã£ã¹ãã¯ããžãªã¡ããªããŒãã䜿çšããŠBlenderã§è€éãªããã·ãŒãžã£ã«ãã«ãã£ã³ã°ãžã§ãã¬ãŒã¿ãŒãæ§ç¯ããŸãããããã¯çžäºæ¥ç¶ãããããžãã¯ã®åäœã§ãããœãããŠã§ã¢ã®ã¢ããããŒãåŸã圌ãã¯ãã¡ã€ã«ãéããŠã圌ãã®äœåãå£ããŠããããšã«æ°ã¥ããŸãããœãããŠã§ã¢ããã«ãŒã屿§ãããŒã¿ãåŠçããæ¹æ³ã®æ ¹æ¬çãªå€æŽã¯ãéèŠãªããŒãããã¯ãå ¥åãæ£ããè§£éããªãããšãæå³ããŸããæç¢ºãªãšã©ãŒã¡ãã»ãŒãžã¯ãªãããã³ã»ã³ã¹ãªåºåã ãã§ããã¢ãŒãã£ã¹ãã¯ä»ãåæ¹äºææ§ã®æ¬ åŠã«ãã£ãŠåŒãèµ·ããããåé¡ã蚺æããããã«ãèªåã®ããžãã¯ããªããŒã¹ãšã³ãžãã¢ãªã³ã°ããã®ã«äžæ¥ãè²»ãããªããã°ãªããŸãããããã¯ã¯ãŒã¯ãããŒåå®å šã®äžåœ¢æ ã§ãã
ããããã¹ãŠã®ã±ãŒã¹ã«ãããŠãåé¡ã¯ããŒã¿ã®äžäžèŽãã€ãŸãåãšã©ãŒã«èµ·å ããŸããããŒã«ã¯ããããã®äžäžèŽãäºæž¬ãŸãã¯åŠçããã®ã«ååãªé²åŸ¡çã«èšèšãããŠããããã¢ãŒãã£ã¹ãã¯ä»£åãæããŸãããã¯ãªãšã€ãã£ããªåå®å šæ§ã®ç®æšã¯ããããã®ã·ããªãªãããžã¿ã«ã¯ãªãšã€ãã£ãããã»ã¹ã®äžéšãšããŠåãå ¥ããããã®ã§ã¯ãªãããŸããªäŸå€ãšãªãäžçãæ§ç¯ããããšã§ãã
ã¯ãªãšã€ãã£ããªæèã«ããããåå®å šæ§ããšã¯ïŒ
ã¯ãªãšã€ãã£ããªåå®å šæ§ãçè§£ããããã«ã¯ããŸãããã°ã©ãã³ã°ã«ããããã®èµ·æºãèŠãå¿ èŠããããŸããJavaãC++ã®ãããªå³å¯ã«åä»ããããèšèªã§ã¯ããã¹ãŠã®ããŒã¿çã«ã¯åããããŸãïŒäŸãã°ãæŽæ°ãããã¹ãã®æååãããŒã«å€ã®true/falseå€ïŒãèšèªã¯ããããã®åãã©ã®ããã«çžäºäœçšã§ãããã«ã€ããŠã«ãŒã«ã匷å¶ããŸãããã®ã³ã³ãã€ã«æã®ãã§ãã¯ã¯ãããã°ã©ã ãå®è¡ãããåã«ãæœåšçãªãã°ã®å·šå€§ãªã¯ã©ã¹ãææããŸããå¯Ÿç §çã«ãPythonãJavaScriptã®ãããªåçã«åä»ããããèšèªã¯ãå®è¡æã«åããã§ãã¯ããæœåšçãªã©ã³ã¿ã€ã ãšã©ãŒã®ã³ã¹ãã§ããæè»æ§ãæäŸããŸãã
ã¯ãªãšã€ãã£ããªæèã§ã¯ããã®æŠå¿µã¯åçŽãªæ°å€ãæååãã¯ããã«è¶ ããŠæ¡å€§ããŸããããã¯ãèžè¡çãªãããžã§ã¯ããæµãããã¹ãŠã®è€éãªããŒã¿ã®æ§é ãå®çŸ©ããå°éããããšã§ããããããã¯ãªãšã€ãã£ãããŒã¿åãšèããããšãã§ããŸãã
ã¯ãªãšã€ãã£ãããŒã¿åã®èªåœ
- ãã¯ãã«ãšåº§æšïŒ2Däœçœ®ïŒxãyïŒã¯ã3Däœçœ®ïŒxãyãzïŒãŸãã¯4Dãã¯ãã«ïŒxãyãzãwïŒãšã¯æ ¹æ¬çã«ç°ãªããŸããåå®å šãªã·ã¹ãã ã¯ã3DããŒã¿ãæåŸ ãã颿°ã2DããŒã¿ãåä¿¡ãããšãã«ã¯ã©ãã·ã¥ããªãããã«ããŸããäŸãã°ãèªåçã«ãzãã®å€ã0ã§ãããšä»®å®ãããããããŸããã
- è²ïŒè²ã¯é©ãã»ã©è€éãªããŒã¿åã§ããRGBïŒèµ€ãç·ãéïŒãRGBAïŒã¢ã«ãã¡/éæåºŠãã£ãã«ä»ãïŒãHSVïŒè²çžã圩床ãæåºŠïŒããŸãã¯#FF0000ã®ãããª16é²ã³ãŒããšããŠè¡šçŸã§ããŸããåå®å šãªã«ã©ãŒããã«ãŒãŸãã¯ããŒãã¯ãäžè²«ãã圢åŒãåºåããã ãã§ãªããå ¥åãã€ã³ããªãžã§ã³ãã«åŠçãŸãã¯å€æããè²çžå ¥åã«ã¢ã«ãã¡å€ãäŸçµŠãããããªãšã©ãŒãé²ããŸãã
- 幟äœåŠçããªããã£ãïŒããã¯ãç¹ãç·ãããªãŽã³ãNURBSæ²ç·ãããã³è€éãª3Dã¡ãã·ã¥ãå«ãåºå€§ãªã«ããŽãªã§ããã¡ãã·ã¥ãã¹ã ãŒãºã«ããããã«èšèšããã颿°ã¯ã誀ã£ãŠæ¥ç¶ãããŠããªãç¹ã®ãªã¹ããäžããããå Žåãé©åã«åå¿ããå¿ èŠããããŸããã¡ã¢ãªãç ŽæãããŠã¯ã©ãã·ã¥ããã®ã§ã¯ãªãããå ¥åã¯æå¹ãªã¡ãã·ã¥ã§ãªããã°ãªããŸããããšãããšã©ãŒãå ±åããããäœãããªããã®ã©ã¡ããã«ããå¿ èŠããããŸãã
- ç»åãšãã¯ã¹ãã£ããŒã¿ïŒããŒã¿ã¯ãçã®ãã¯ã»ã«ãããã¡ãJPEGãPNGã®ãããªå§çž®åœ¢åŒãããã·ãŒãžã£ã«ãã€ãºãã¿ãŒã³ããŸãã¯ãã«ãã¬ã€ã€ãŒEXRãã¡ã€ã«ã§ããå¯èœæ§ããããŸããåã«ã¯ããã¯ã»ã«ã ãã§ãªããã«ã©ãŒã¹ããŒã¹ããããæ·±åºŠã®ãããªã¡ã¿ããŒã¿ãå«ãŸããŸããåå®å šãªã¯ãŒã¯ãããŒã¯ãã«ã©ãŒã¹ããŒã¹å€æãæ£ããåŠçãããäºææ§ã®ãªãç»å圢åŒã§æäœãå®è¡ãããªãããã«ããŸãã
- æéãšã¢ãã¡ãŒã·ã§ã³ããŒã¿ïŒããã¯åãªãåäžã®æ°å€ã§ã¯ãããŸãããããã¯ãããŒãã¬ãŒã ãã¿ã€ãã³ã°ã«ãŒãïŒããžãšïŒãããã³LFOïŒäœåšæ³¢çºæ¯åšïŒã®ãããªããã·ãŒãžã£ã«ã¢ãžã¥ã¬ãŒã¿ãŒã®è€éãªæ§é ã§ããå¯èœæ§ããããŸãããã®ããŒã¿åãçè§£ããã·ã¹ãã ã¯ãéçãªå€ã«ã€ãŒãžã³ã°ã«ãŒããé©çšãããããªéè«ççãªæäœãé²ãããšãã§ããŸãã
ããŒã¿ãè¶ ããŠããã®æŠå¿µã¯ã€ã³ã¿ãŒãã§ãŒã¹ãšã¯ãŒã¯ãããŒèªäœã«ãŸã§æ¡åŒµãããŸããã€ã³ã¿ãŒãã§ãŒã¹å®å šæ§ã¯ãå®çŸ©ãããæå°/æå€§å€ãæã€ã¹ã©ã€ããŒããæå¹ãªéžæã®ã¿ãèš±å¯ããããããããŠã³ã®ãããªãå ¥åãå¶çŽããUIèŠçŽ ã«å ·çŸåãããŸããã¯ãŒã¯ãããŒå®å šæ§ã¯ãããŒãããŒã¹ã®ãšãã£ã¿ã§æãé¡èã§ãããããŒããæ¥ç¶ããè¡çºãã®ãã®ãåãã§ãã¯ã§ããè²åãããã圢äœãããã³ãã¯ã¿ã¯ãäºææ§ãäŒéããèŠèŠèšèªã§ããããŠãŒã¶ãŒããžãªã¡ããªåºåãã«ã©ãŒå ¥åã«æ¥ç¶ããããšãé²ããããæäœããæ¬¡ã®æäœãžã®ããŒã¿ã®è«ççãªæµããä¿èšŒããŸãã
ã±ãŒã¹ã¹ã¿ãã£ïŒäžçäžã§å®è¡ãããŠããåå®å šæ§
åå®å šæ§ã®å²åŠã¯ãç§ãã¡ã䜿çšãããã¹ãŠã®ããŒã«ã«ãããŸããŸãªçšåºŠã§åã蟌ãŸããŠããŸãããã®ã¬ã³ãºãéããŠãããã調ã¹ãããšã§ããããã®èšèšäžã®åªå é äœãšæœåšçãªèœãšã穎ãæããã«ãªããŸãã
ããã¹ãããŒã¹ã®ã¯ãªãšã€ãã£ãã³ãŒãã£ã³ã°ïŒProcessingãp5.jsãopenFrameworksïŒ
ããã¯ããã®æŠå¿µãçãŸããå Žæã§ããJavaãããŒã¹ã«ããProcessingã¯ãå³å¯ã«åä»ããããŠããŸããããã«ãããã¢ãŒãã£ã¹ãã¯èªåã®ããŒã¿ã«ã€ããŠæç€ºçã«ãªãããšã匷å¶ãããŸãïŒããã®å€æ°ã¯æŽæ°ãä¿æããããã¯Particleãªããžã§ã¯ããä¿æããŸããããã®åæã®åæ§ã¯ãå€§èŠæš¡ãªãããžã§ã¯ãã§é åœããããããŸããJavaã³ã³ãã€ã©ã¯æåç·ãšããŠæ©èœããã¹ã±ãããå®è¡ããåã«åãšã©ãŒãææããŸããC++ã䜿çšããopenFrameworksã¯ãåæ§ã®ã³ã³ãã€ã«æã®ä¿èšŒãæäŸããŸãã
å¯Ÿç §çã«ãp5.jsïŒJavaScriptïŒã¯åçã«åä»ããããŠããŸããããã«ãããåå ¥éå£ãäœããªããŸãã倿°ã¯ããç¬éã«æ°å€ãä¿æããæ¬¡ã®ç¬éã«æååãä¿æã§ããŸããããã«ãããè¿ éãªã¹ã±ããã«å€§ããªæè»æ§ãæäŸãããŸãããå管çã®è² æ ã¯å®å šã«ã¢ãŒãã£ã¹ãã«èª²ããããŸããäžè¬çãªãšã©ãŒã¯ãåå¥ã®`xãy`åŒæ°ãæåŸ ãã颿°ã«`p5.Vector`ãªããžã§ã¯ããæž¡ãããšã§ããããã°ãé£ããå¯èœæ§ããã`NaN`ïŒNot a NumberïŒã®çµæã«ã€ãªãããŸããããã§ã®ææ°ã®ãœãªã¥ãŒã·ã§ã³ã¯ããªãã·ã§ã³ã®éçåä»ãã远å ããJavaScriptã®ã¹ãŒããŒã»ããã§ããTypeScriptã䜿çšããããšã§ããå€§èŠæš¡ãªå ±åp5.jsãããžã§ã¯ãã®å ŽåãTypeScriptã¯ã²ãŒã ãã§ã³ãžã£ãŒã§ãããåå®å šæ§ã®å©ç¹ãWebã§æã人æ°ã®ããã¯ãªãšã€ãã£ãã³ãŒãã£ã³ã°ã©ã€ãã©ãªã«ãããããŸãã
ããŒãããŒã¹ã®ããžã¥ã¢ã«ããã°ã©ãã³ã°ïŒHoudiniãTouchDesignerãUnreal EngineïŒ
ãããã®ç°å¢ã¯ãééããªãããžã¥ã¢ã«åå®å šæ§ã®ãŽãŒã«ãã¹ã¿ã³ããŒãã§ããããŒããæ¥ç¶ãããã¯ã€ã€ãã¯åãªã象城çãªãã®ã§ã¯ãããŸããããããã¯ç¹å®ã®ããŒã¿åã®ãã£ãªã¢ã§ããã«ããã§éçºãããã€ã³ã¿ã©ã¯ãã£ãã¡ãã£ã¢åãã®äž»èŠãªããŒã«ã§ããTouchDesignerã§ã¯ãCHOPïŒãã£ã³ãã«ããŒã¿ïŒãTOPïŒãã¯ã¹ãã£/ãã¯ã»ã«ããŒã¿ïŒãããã³SOPïŒãµãŒãã§ã¹/ãžãªã¡ããªããŒã¿ïŒã«å¯ŸããŠç°ãªãã¯ã€ã€ã®è²ã衚瀺ãããŸãããã¯ã¹ãã£åºåããžãªã¡ããªå ¥åã«æ¥ç¶ããããšã¯ã§ããŸããããã®å³æ Œãã¯åµé æ§ãå¶éãããã®ã§ã¯ãããŸãããããã¯ããããã£ãã«åããŸããããã¯ãŠãŒã¶ãŒãæå¹ãªãœãªã¥ãŒã·ã§ã³ã«å°ããè€éãªãããã¯ãŒã¯ãèªã¿ãããããããã°å¯èœã«ããŸãã
åæ§ã«ããã¥ãŒãžãŒã©ã³ãã®Weta Digitalããç±³åœIndustrial LightïŒMagicãŸã§ãã°ããŒãã«ãªèŠèŠå¹ææ¥çã§äœ¿çšãããŠããSideFXã®Houdiniã¯ãããŒãéãæµããå³å¯ã«åä»ããããããŒã¿ã®åºç€ã®äžã«æ§ç¯ãããŠããŸãããã®ããã·ãŒãžã£ã«ãã©ãã€ã å šäœã¯ãã屿§ãã®äºæž¬å¯èœãªå€æã«äŸåããŠããŸãã屿§ãšã¯ããã€ã³ããããªããã£ããããã³é ç¹ã«ã¢ã¿ãããããããŒã¿ã§ãããã®å ç¢ãªåå®å šã¢ãŒããã¯ãã£ã¯ãããã·ãŒãžã£ã«ãªéœåžããã£ã©ã¯ã¿ãŒãšãã§ã¯ããããã³ãã€ãšã³ããã£ã«ã å¶äœã«ååãªå®å®æ§ã®ããèªç¶çŸè±¡ã®ãããªãä¿¡ããããªãã»ã©è€éã§ãèžè¡çã«æç€ºå¯èœãªã·ã¹ãã ã®äœæãå¯èœã«ãããã®ã§ãã
åŸæ¥ã®ããžã¿ã«ã³ã³ãã³ãäœæïŒDCCïŒã¢ããªïŒBlenderãAdobe Creative SuiteïŒ
PhotoshopãBlenderã®ãããªã¢ããªã±ãŒã·ã§ã³ã§ã¯ãåå®å šæ§ã¯é«åºŠã«æ§é åãããã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ãéããŠåŒ·å¶ãããŸãããã¯ã»ã«ã¬ã€ã€ãŒããã¯ã¿ãŒã·ã§ã€ãã3Dã¡ãã·ã¥ãã¢ãŒããã¥ã¢ãªã©ã®æç¢ºãªãªããžã§ã¯ãã¿ã€ããæäœããŸããã€ã³ã¿ãŒãã§ãŒã¹ã¯ãæåã«ã©ã¹ã¿ã©ã€ãºïŒãã®åãæç€ºçã«å€æïŒããã«ããã¯ã¿ãŒã·ã§ã€ãã«ãã¬ãŠã¹ãŒããããã£ã«ã¿ãŒïŒãã¯ã»ã«æäœïŒãé©çšããããšãé²ããŸãã3Dãªããžã§ã¯ãã®ããããã£ããã«ã«ã¯ãäœçœ®ãå転ãããã³ã¹ã±ãŒã«çšã«ãåå¥ã«æç¢ºã«ã©ãã«ä»ãããããã£ãŒã«ããããããããããç¹å®ã®ãã¯ã¿ãŒåãæåŸ ããŠããŸãããã®æ§é åãããåèªèç°å¢ã¯ãåçšã¯ãŒã¯ãããŒã§ããããä¿¡é Œã§ããããã«ãããã®ã§ãã
課é¡ã¯ãã¹ã¯ãªãããšãã©ã°ã€ã³APIã§çºçããŸããäŸãã°ãBlenderã®Python APIã¯åŒ·åã§ãããæ³šææ·±ãåŠçããªããšããã°ã©ã ãäžå®å®ã«ããå¯èœæ§ãããæ¹æ³ã§ããŒã¿ãæäœããæ©èœãéçºè ã«æäŸããŸããé©åã«èšè¿°ããããã©ã°ã€ã³ã¯ãã·ãŒã³ããŒã¿ã倿Žããåã«ãç¬èªã®åãã§ãã¯ãšæ€èšŒãå®è¡ãããŠãŒã¶ãŒã®ãããžã§ã¯ããã¡ã€ã«ãç Žæãããªãããã«ããŸããããã¯ããããã®ã³ã¢ã¢ããªã±ãŒã·ã§ã³ã®æ©èœãæ¡åŒµãããµãŒãããŒãã£éçºè ã®ã°ããŒãã«ã³ãã¥ããã£ã«ãšã£ãŠéèŠãªè²¬ä»»ã§ãã
éçºè ã®åœ¹å²ïŒããå®å šãªã¯ãªãšã€ãã£ãããŒã«ã®æ§ç¯
ã¢ãŒãã£ã¹ãã䜿çšããããŒã«ãæ§ç¯ãã人ã ã«ãšã£ãŠãåå®å šæ§ã®å²åŠãåãå ¥ããããšã¯ããŠãŒã¶ãŒã«åãäžããããšãžã®ã³ãããã¡ã³ãã§ããããã¯ãåµé çãªããã»ã¹ã«ãããŠãå埩åã®ããããŒãããŒãšãªããœãããŠã§ã¢ãèšèšããããšã§ãã以äžã«ãããã€ãã®å®è¡å¯èœãªååã瀺ããŸãã
- æç¢ºã§æç€ºçãªAPIã®èšèšïŒãã¹ãŠã®é¢æ°ãŸãã¯ããŒãã®å ¥åãšåºåã¯æç¢ºã§ãªããã°ãªããŸãããæåŸ ãããããŒã¿åã培åºçã«ææžåããŸããäžè¬çãª`process(data)`颿°ã®ä»£ããã«ã`createMeshFromPoints(points)`ãŸãã¯`applyGradientToTexture(texture, gradient)`ã®ãããªç¹å®ã®é¢æ°ãåªå ããŸãã
- ãã¹ãŠã®å ¥åãæ€èšŒããã³ãµãã¿ã€ãºïŒåä¿¡ããå ¥åãæ£ãããšæ±ºããŠä¿¡é Œããªãã§ãã ãããããã¯ããŠãŒã¶ãŒåãã®å ¥åãã£ãŒã«ãã«ç¹ã«åœãŠã¯ãŸããŸãããå éšã¢ãžã¥ãŒã«éãæµããããŒã¿ã«ãé©çšãããŸããããŒã¿ãæåŸ ããã圢åŒã§ããããæå¹ãªç¯å²å ã§ããããnullã§ãªããã確èªããŸãã
- æ£åžžãªãšã©ãŒåŠçã®å®è£ ïŒã¯ã©ãã·ã¥ã¯ã³ãã¥ãã±ãŒã·ã§ã³ã®å£æ» çãªå€±æã§ããã¯ã©ãã·ã¥ãã代ããã«ãããŒã«ã¯æå³ã®ããã人éãèªãããšã©ãŒã¡ãã»ãŒãžãæäŸããå¿ èŠããããŸããããšã©ãŒïŒ'ãŒãã'ããŒãã«ã¯ãã¯ã¹ãã£å ¥åïŒTOPïŒãå¿ èŠã§ããããã£ã³ãã«ããŒã¿ïŒCHOPïŒãåä¿¡ããŸãããã¯ããµã€ã¬ã³ãé害ãŸãã¯äžè¬çãªãã¢ã¯ã»ã¹éåããã€ã¢ãã°ãããã¯ããã«åœ¹ç«ã¡ãŸãã
- çç£çãªå¶çŽãåãå ¥ããïŒç¡å¶éã®èªç±ã¯è² åµã«ãªãå¯èœæ§ããããŸããè² ããæ£ã®ç¡é倧ãŸã§ã®ä»»æã®æ°ãåãå ¥ããå ¥åãã£ãŒã«ãã¯ãé©åãªç¯å²ïŒäŸãã°ãäžéæåºŠã®å Žå0.0ã1.0ïŒã«åºå®ãããã¹ã©ã€ããŒãããå±éºã§ããå¶çŽã¯ãŠãŒã¶ãŒãã¬ã€ããããšã©ãŒã®ã¯ã©ã¹å šäœãé²ããŸãã
- ããŒã¿åã®èŠèŠçãªåå³ã®äœ¿çšïŒããŒãããŒã¹ã®ã·ã¹ãã ããã€ã³ã¹ãã¬ãŒã·ã§ã³ãåŸãŠãã ãããUIã§è²ãã¢ã€ã³ã³ãããã³ã¬ã€ã¢ãŠãã䜿çšããŠããŠãŒã¶ãŒãæäœã§ããããŸããŸãªçš®é¡ã®ããŒã¿ã®æç¢ºãªèŠèŠèšèªãäœæããŸããããã«ãããã¢ããªã±ãŒã·ã§ã³ãããçŽæçã«ãªããèªå·±ææžåãããŸãã
- é©åãªãã¯ãããžãŒã®éžæïŒæ°ãããããžã§ã¯ããéå§ãããšãã¯ããã¬ãŒããªããæ€èšããŠãã ãããå®å®æ§ãæåªå ãããå€§èŠæš¡ã§è€éãªã¢ããªã±ãŒã·ã§ã³ã®å Žåãåçã«åä»ããããèšèªããããC++ãRustããŸãã¯C#ã®ãããªå³å¯ã«åä»ããããèšèªã®æ¹ãé©ããŠããå ŽåããããŸããJavaScriptã䜿çšããå Žåã¯ãæåããTypeScriptã®æ¡çšãåŒ·ãæ€èšããŠãã ããã
ã¢ãŒãã£ã¹ãã®æŠç¥ïŒåå®å šãªã¯ãŒã¯ãããŒã®è²æ
ã¢ãŒãã£ã¹ãã¯ååçãªãŠãŒã¶ãŒã§ã¯ãããŸããã圌ãã¯ãããžã§ã¯ãã®è€éãã管çããã¢ã¯ãã£ããªåå è ã§ããåå®å šãªèãæ¹ãåãå ¥ããããšã§ã䜿çšããããŒã«ã«é¢ä¿ãªããã¯ãªãšã€ãã£ããªäœæ¥ã®å®å®æ§ãšã¹ã±ãŒã©ããªãã£ãåçã«åäžãããããšãã§ããŸãã
- ããŒã«ã®ããŒã¿ãããŒã®çè§£ïŒãœãããŠã§ã¢ã®åã³ã³ããŒãã³ããã©ã®ãããªçš®é¡ã®ããŒã¿ãæ¶è²»ããã³çæããããç©æ¥µçã«åŠç¿ããŸããçšèªã«æ³šæããŠãã ãããããã¯ã¹ãã£ããŸãã¯ãç»åãã§ããïŒãã¡ãã·ã¥ããŸãã¯ããžãªã¡ããªãã§ããïŒãã·ã°ãã«ããŸãã¯ãå€ãã§ããïŒãã®ããæ·±ãçè§£ã¯ãããªãããã¿ã³ãæŒã人ããã·ã¹ãã ã¢ãŒããã¯ãã«å€ããŸãã
- 峿 ŒãªåœåèŠåã®æ¡çšïŒããªãã®åœåã¹ããŒã ã¯ã粟ç¥çãªåå®å šã®äžåœ¢æ ã§ãã`p_data`ãããã`particle_position_vector_array`ãšããååã®å€æ°ã¯ãã¯ããã«ææ§ãããããŸãããã¬ã€ã€ãŒãããŒããããã³ãã¡ã€ã«ã®äžè²«æ§ã®ããåœåã«ããããããžã§ã¯ãã®çè§£ããããã°ãããã³æ°ãæåŸã®å蚪ã容æã«ãªããŸãã
- ã¢ãžã¥ãŒã«åŒã«æ§ç¯ããæ®µéçã«ãã¹ãïŒã¢ããªã·ãã¯ã§è€éãªã·ã¹ãã ãäžåºŠã«æ§ç¯ããªãã§ãã ããããããžã§ã¯ããããå°ãããèªå·±å®çµåã§ãäºæž¬å¯èœãªã³ã³ããŒãã³ãã«åå²ããŸããåã¢ãžã¥ãŒã«ãåå¥ã«ãã¹ãããŠãå šäœã«çµ±åããåã«æåŸ ã©ããã«åäœããããšã確èªããŸãã
- ããŒãžã§ã³ç®¡çã®æ¡çšïŒGitã®ãããªããŒã«ã¯ããœãããŠã§ã¢éçºè ã ãã®ãã®ã§ã¯ãããŸããããããã¯ãããããããžã¿ã«ãããžã§ã¯ãã®ç©¶æ¥µã®ã»ãŒããã£ãããã§ããããŒãžã§ã³ç®¡çã䜿çšãããšãåžžã«ä»¥åã®äœæ¥ç¶æ ã«æ»ãããšãã§ããããšãç¥ã£ãŠãæããããšãªãå®éšã§ããŸããããã¯ãè€éãªãžã§ãã¬ãŒãã£ãã¢ãŒããŸãã¯ããã·ãŒãžã£ã«ã¢ããªã³ã°ãããžã§ã¯ãã«éåžžã«è²Žéãªã°ããŒãã«ãã¹ããã©ã¯ãã£ã¹ã§ãã
- å®å šãªå®éšïŒç®æšã¯ãããããŒã¢ã¯ã·ãã³ããæé€ããããšã§ã¯ãããŸãããå®éšã§ããå®å®ããåºç€ãããäœæããããšã§ãããªãŒãã£ãªããŒã¿ã䜿çšããŠé ç¹äœçœ®ãé§åãããªã©ãåç Žããªããšã詊ãããå Žåã¯ãå¶åŸ¡ãããæ¹æ³ã§å®è¡ããŠãã ãããã¡ã€ã³ã®ã»ããã¢ãããè€è£œããå®éšãåé¢ãã倱æããæºåãããŠãã ãããéèŠãªã®ã¯ããã®å€±æããããžã§ã¯ãå šäœã忢ãããªãããšã§ãã
å®è·µçãªäŸïŒå埩åã®ããããŒãã£ã¯ã«ã·ã¹ãã ã®æ§ç¯
仮説çãªJavaScriptã®ãããªèšèªã§åçŽãªããŒãã£ã¯ã«ã·ã¹ãã ãäœæããããã®2ã€ã®ã¢ãããŒãã察æ¯ããŠã¿ãŸãããã
å®å šã§ãªãã¢ãããŒãïŒ
ã¢ãŒãã£ã¹ãã¯ã䞊åé åã«ããŒãã£ã¯ã«ããŒã¿ãæ ŒçŽããŸãïŒ`let positions = []; let velocities = []; let colors = [];`ãã³ãŒãã®ãã°ã«ããã誀ã£ãŠ2Dãã¯ã¿ãŒãªããžã§ã¯ãã®ä»£ããã«åäžã®æ°å€ã`positions`é åã«ããã·ã¥ãããŸããåŸã§ãã¬ã³ããªã³ã°é¢æ°ã¯`positions[i].x`ã«ã¢ã¯ã»ã¹ããããšããŸãããããã¯ååšããŸãããããã¯`undefined`ãè¿ããããã¯æ°åŠæŒç®äžã«`NaN`ã«ãªããããŒãã£ã¯ã«ã¯äœã®ãšã©ãŒããªãç»é¢ããæ¶ããã¢ãŒãã£ã¹ãã¯äœãééã£ãŠããã®ãçåã«æããŸãã
å®å šãªã¢ãããŒãïŒ
ã¢ãŒãã£ã¹ãã¯ãæåã«ã¯ã©ã¹ãŸãã¯ãªããžã§ã¯ãæ§é ã䜿çšããŠãåããå®çŸ©ããŸãïŒ`class Particle { constructor() { this.position = new Vector2D(0, 0); this.velocity = new Vector2D(0, 0); this.color = new RGBColor(255, 255, 255); } }`ãã¡ã€ã³ã·ã¹ãã ã¯ã`Particle`ãªããžã§ã¯ãã®åäžã®é åã管çããããã«ãªããŸããããã®æ§é ã«ããããã¹ãŠã®ããŒãã£ã¯ã«ãåžžã«æ£ãã圢åŒã§æå¹ãªäœçœ®ãé床ãããã³è²ãæã€ããšãä¿èšŒãããŸãã`particle.position`ã«æ°å€ãå²ãåœãŠãããšãããšãç¡èŠãããããããé«åºŠãªã»ããã¢ããã§ã¯ã`Vector2D`ã¯ã©ã¹èªäœããšã©ãŒãã¹ããŒããå¯èœæ§ããããŸãããã®ã¢ãããŒãã«ãããã³ãŒããããèªã¿ããããå ç¢ã«ãªãããããã°ãã¯ããã«å®¹æã«ãªããŸãã
æªæ¥ïŒAIãæ©æ¢°åŠç¿ããããŠæ¬¡äžä»£ã®åå®å šæ§
ç§ãã¡ã®ããŒã«ãããã€ã³ããªãžã§ã³ãã«ãªãã«ã€ããŠãåå®å šæ§ã®æŠå¿µã¯é²åããŸãã課é¡ãšæ©äŒã¯éåžžã«å€§ããã§ãã
- AIæ¯æŽã«ããåæšè«ãšå€æïŒæå³ãçè§£ããã®ã«ååãªã»ã©è³¢ãããŒã«ãæ³åããŠã¿ãŠãã ããããªãŒãã£ãªã¹ããªãŒã ããžãªã¡ããªã¹ã±ãŒã«ãã©ã¡ãŒã¿ã«æ¥ç¶ãããšããšã©ãŒãã¹ããŒãã代ããã«ãããã®ãªãŒãã£ãªããŒã¿ãã©ã®ããã«ãããã³ã°ããŸããïŒæ¯å¹ ãåäžãªã¹ã±ãŒã«ãšããŠäœ¿çšããŸããïŒåšæ³¢æ°ãZ軞ã«ãããã³ã°ããŸããïŒããšãããã€ã¢ãã°ã衚瀺ãããå¯èœæ§ããããŸããããã¯ãå³å¯ãªãšã©ãŒé²æ¢ããã€ã³ããªãžã§ã³ãã§ã¬ã€ãä»ãã®å倿ã«ç§»è¡ããŸãã
- ããã·ãŒãžã£ã«ãªæ€èšŒãšãµãã¿ã€ãºïŒãã¯ã¹ãã£ãã3Dã¢ãã«ãã³ãŒãèªäœãŸã§ãã¯ãªãšã€ãã£ããªã¢ã»ãããçæããããã«AIã¢ãã«ã䜿çšããããšããŸããŸãå¢ããŠãããããæ°ããæ€èšŒã¬ã€ã€ãŒãå¿ èŠã«ãªããŸããAIã§çæããã3Dã¡ãã·ã¥ã¯æ°Žå¯ã§ãé倿§äœãžãªã¡ããªããªããïŒçæãããã·ã§ãŒããŒã³ãŒãã¯æ§æçã«æ£ãããããã©ãŒãã³ã¹ã®ããã«ããã¯ããªããïŒãžã§ãã¬ãŒãã£ãã¢ãã«ã®åºåã®ãåãã§ãã¯ãã¯ããããããããã§ãã·ã§ãã«ãªãã€ãã©ã€ã³ã«çµ±åããããã®éèŠãªã¹ãããã«ãªããŸãã
- ã»ãã³ãã£ãã¯åå®å šæ§ïŒæªæ¥ã¯ãããªããã£ããªããŒã¿åãè¶ ããŠãã¯ãªãšã€ãã£ãããŒã¿ã®æå³ãã€ãŸãã»ãã³ãã£ã¯ã¹ãçè§£ããããšã§ããããŒã«ã¯ããã£ã©ã¯ã¿ãŒãªã°ããšãè»äž¡ãªã°ãã®éããçè§£ãããããããŸãããæ¬¡ã«ããæ©è¡ãµã€ã¯ã«ãã¢ãã¡ãŒã·ã§ã³ïŒã»ãã³ãã£ãã¯åïŒãäºææ§ã®ããäºè¶³æ©è¡ã®ããã£ã©ã¯ã¿ãŒãªã°ãã«é©çšãããŠããããšã確èªãããã®ã¢ãã¡ãŒã·ã§ã³ãè»ã«ãã³ã»ã³ã¹ã«é©çšããããšãé²ãããšãã§ããŸããããã¯ãããŒã¿ã®èžè¡çãªæèãçè§£ããé«ã¬ãã«ã®äºææ§ãã§ãã¯ã®äžåœ¢æ ã§ãã
倧ããªèª²é¡ã¯ãè峿·±ãæ¹æ³ã§ããŒã«ã誀çšããããšããçãŸããåµé çãªæ¢æ±ã劚ããããšãªãããããã®ã€ã³ããªãžã§ã³ããªã·ã¹ãã ãæ§ç¯ããããšã§ããã¯ãªãšã€ãã£ããªåå®å šæ§ã®æªæ¥ã¯ããŠãŒã¶ãŒããšã©ãŒããé ãããªãããæå³çã«ã«ãŒã«ããªãŒããŒã©ã€ãããããšãèš±å¯ããããœããããŸãã¯ãææ¡ããããã·ã¹ãã ã«ãããããããŸããã
çµè«ïŒå®å®ã®åºç€ã®äžã®åµé æ§
ã¯ãªãšã€ãã£ãããŒã«ã«ãããåå®å šæ§ã¯ãã¢ãŒãã£ã¹ããå¶éããããã«èšèšãããå¶çŽçãªãã°ãã§ã¯ãããŸãããããã¯ãã¢ãŒãã£ã¹ããè§£æŸããããšãç®çãšããèšèšå²åŠã§ããããã¯ãã¢ãŒãã£ã¹ããè¶³å ãã厩ããããšãæããããšãªããåµé çãªããžã§ã³ãæ§ç¯ã§ããããã«ãå®å®æ§ãšäºæž¬å¯èœæ§ã®åºç€ãæ§ç¯ããããšã§ããæè¡çãªæ©æŠã®åå ãåãé€ãããšã§ãããŒã«ãèæ¯ã«æ¶ããæèãšè¡šçŸã®ããã®éæãªåªäœã«ãªãããšãå¯èœã«ããŸãã
éçºè ã«ãšã£ãŠãããã¯ããææ ®æ·±ããå埩åããããã³ãã¥ãã±ãŒã·ã§ã³èœåã®ãããœãããŠã§ã¢ãæ§ç¯ããããšãžã®åŒã³ããã§ããã¢ãŒãã£ã¹ãã«ãšã£ãŠãããã¯æå¿«ããšå ç¢æ§ãåªå ããã¯ãŒã¯ãããŒãšã¡ã³ã¿ã«ã¢ãã«ãè²æããããã®æåŸ ã§ããããŒã«ãã¢ã»ãããããã³ã³ã©ãã¬ãŒã¿ãŒããœãããŠã§ã¢ãšåœã®å¢çç·ãè¶ãããã°ããŒãã«ã§çžäºæ¥ç¶ãããããžã¿ã«ã¢ãŒãã®äžçã§ã¯ãæ§é åãããä¿¡é Œæ§ã®é«ãããŒã¿ã«é¢ããå ±éã®çè§£ããããŸã§ä»¥äžã«éèŠã§ããåå®å šæ§ã®ååãåãå ¥ããããšã§ããã匷åã§ãäºæž¬å¯èœã§ããããŠæçµçã«ã¯ããåµé çãªæªæ¥ãéåçã«æ§ç¯ã§ããŸãã